<?php
Yii::import('application.core.buscar_registro.Buscar_Lista_Empleados');

class Asignar_Pedido{

	private $usuario;
  	private $fecha_pedido; 	
  	private $hora_pedido;
	private $detalles;

	private $prioridad;
	private $sucursal;
	private $fecha_actual;

	private $empleados;
	private $empleado;
 
//_________________INICIAR BUSQUEDA PARA NUEVO PEDIDO___________________

  	public function __construct($usuario, $fecha_pedido, $hora_pedido, $especialidad, $prioridad, $config, $otraSucursal){
		// 	En esta primera etapa se busca y devuelve:
		// 	- La lista de Empleados disponibles para tomar el pedido
				
	    $this->usuario=$usuario;
	    $this->fecha_pedido=$fecha_pedido;
	    $this->hora_pedido=$hora_pedido;
	    $this->prioridad=$prioridad;
	    
	    if ($otraSucursal==0){
	    	$this->sucursal=$config->get_sucursal();
	    }elseif ($otraSucursal!=0) {
	    	$this->sucursal=$config->get_otra_sucursal($otraSucursal);
	    }
	    
		$this->buscar_empleados_disponibles($usuario , $fecha_pedido, $hora_pedido, $especialidad, $prioridad, $config, $this->sucursal);
  	}

	public function get_lista_empleados(){
		return $this->empleados;
	}


//_________________CONFIRMAR NUEVO PEDIDO_______________________________

  	public function confirmar($empleado_seleccionado, $detalles){
  		$empleado=$this->empleados[$empleado_seleccionado];
		//$empleado=$empleado_seleccionado;
	    $conexion=Yii::app()->db; 
	    if (mysqli_connect_errno()) {
	    	echo "Failed to connect to MySQL: " . mysqli_connect_error();
	    } else{
	    	$nro_prox_pedido=$this->generar_numero_pedido($conexion); //genera numero para el pedido
	    	$consulta="INSERT INTO pedidos(nro_pedido, nro_usuario, nro_empleado, fecha_pedido, hora_pedido, prioridad, estado, detalles, sucursal) 
			Values('".$nro_prox_pedido."','".$this->usuario->get_nro_usuario()."','".$empleado->get_nro_empleado()."',STR_TO_DATE(REPLACE('".$this->fecha_pedido."','/','.') ,GET_FORMAT(date,'EUR')),'".$this->hora_pedido."','".$this->prioridad."', 'pendiente', '$detalles', $this->sucursal)";
	    	$conexion->createCommand($consulta)->execute();//
	    	$this->notificar();
			return $nro_prox_pedido;
		}
	  }


//________METODOS PRIVADOS__________ 

  	private function buscar_empleados_disponibles($usuario, $fecha_pedido, $hora_pedido, $especialidad, $prioridad, $config, $otraSucursal){
        $direccion_usuario=$usuario->get_coordenadas_usuario();
  		$busqueda= new Buscar_Lista_Empleados($direccion_usuario, $fecha_pedido, $hora_pedido, $especialidad, $prioridad, $config, $otraSucursal);
  		$this->empleados=$busqueda->get_empleados_disponibles();
  	}

	private function generar_numero_pedido($conexion){
		$datonumero=$conexion->createCommand("SELECT MAX(nro_pedido) as nro_pedido FROM pedidos");
		$datos=$datonumero->query();
		foreach($datos as $dato){
			$nro_prox_empleado=$dato['nro_pedido']+1;
			return $nro_prox_empleado ;
		}
	 }

	private function notificar(){
	    //notifica el SNDE
	  }
}
?>